/**
 *
 */
package com.googlecode.bip.entity;

import java.io.Serializable;
import java.util.TimeZone;

/**
 * Entry for 'users' table - public interface
 *
 * @author Claude CHOISNET
 */
public interface IUser extends Serializable
{
    /**
     * Returns the iduser for this user (ReadOnly)
     * @return the iduser
     */
    public int getIdUser();

    /**
     * Returns the username for this user
     * @return the username
     */
    public String getUserName();

    /**
     * Set the username for this user
     * @param username the username to set
     */
    public void setUsername( String username );

//    /**
//     * <p>WriteOnly</p>
//     * Juste pour que tu permettre contruire ta maquette (tu peux enlever le comment si besoin)
//     * @return the password
//     */
//    public String getPassword(); // TODO: REMOVE THIS

    /**
     * Juste pour que tu permettre contruire ta maquette (cette method doit dispatre)
     
     * @param password the password to set
     */
    public void setPassword( String password ); // TODO: REMOVE THIS

    /**
     * Set the password for this user (WriteOnly)
     *
     * @param oldPassword the previous password (could be null)
     * @param password the password to set (could not be null)
     */
    public void setPassword(
            final String oldPassword,
            final String password
            );

    /**
     * @return the isactive
     */
    public int getIsActive();

    /**
     * @param isactive the isactive to set
     */
    public void setIsActive( int isactive );

    /**
     * @return the idlocal
     */
    public String getIdLocal();

    /**
     * @param idlocal the idlocal to set
     */
    public void setIdlocal( String idlocal );

    /**
     * @return the TimeZone for this user
     */
    public TimeZone getTimeZone();
    
    /**
     * @param tz TimeZone for this user
     */
    public void setTimeZone( final TimeZone tz );
}
